Case insensitive (FireBird)

Otázka od: Petr Kralik

1. 7. 2004 10:32

Ahoj,
 kdyz uz jsme u firebirdu.

 1) Existuje nejaka funkce ekvivalentni k LIKE, ktera nerozlisuje
velka a mala pismena?

 2) Taky by me zajimalo jak docilim tohoto:
 SELECT *, COUNT(*) AS pocet FROM a ORDER BY nazev ASC GROUP BY
nazev;
 ----> je ta FireBird fakt tak blba, jak si myslim???

Diky


Odpovedá: petr palicka

1. 7. 2004 10:40

> 1) Existuje nejaka funkce ekvivalentni k LIKE, ktera nerozlisuje
> velka a mala pismena?

porovnavat UPPER(hodnota)?

> 2) Taky by me zajimalo jak docilim tohoto:
> SELECT *, COUNT(*) AS pocet FROM a ORDER BY nazev ASC GROUP BY
> nazev;
> ----> je ta FireBird fakt tak blba, jak si myslim???

blbe je predevsim napsanej ten dotaz:
1/ group by musi byt drive nez order by (viz dokumentace)
2/ v group by musi byt vyjmenovany vseck NE-agregovany sloupce (dle SQL)

peca


Odpovedá: Libor Junek, Medisoft International

1. 7. 2004 10:47

1) Musis si to prevest na velka pismena pomoci UPPER()
2) SELECT NAZEV, COUNT(*) AS pocet FROM a ORDER BY nazev ASC GROUP BY nazev;
by melo fungovat. nemuzes pri GROUP zobrazovat jine fieldy nez mas v GROUP
protoze co ti ma ten server ukazat v tech ostatnich fieldech kdyz data pro
jeden nazev jsou ruzna.

Libor

----- Original Message -----
From: "Petr Kralik" <kralik@tebodin.cz>
Sent: Thursday, July 01, 2004 11:25 AM


> 1) Existuje nejaka funkce ekvivalentni k LIKE, ktera nerozlisuje
> velka a mala pismena?
>
> 2) Taky by me zajimalo jak docilim tohoto:
> SELECT *, COUNT(*) AS pocet FROM a ORDER BY nazev ASC GROUP BY
> nazev;


Odpovedá: Pavel Poles

1. 7. 2004 11:04

> Ahoj,
> kdyz uz jsme u firebirdu.
>
> 1) Existuje nejaka funkce ekvivalentni k LIKE, ktera nerozlisuje
> velka a mala pismena?

To jsem tady zjistoval minule. Muzes samozrejme pouzit UPPER, ale
ma to tu velkou nevyhodu ze se pak nehleda pres indexy.
Jednim resenim je pouzit collate sady ze stranek
http://www.brookstonesystems.com, ty vsak nejsou pripravene na FireBird 1.5
a je nutne je zkompilovat (sam jsem to nezkousel, takze uprimne receno
neznam
jejich funkcnost z praxe)

Pavel Poles


Odpovedá: Petr Kralik

1. 7. 2004 11:18

Diky za konkretni odpoved...

-----Original Message-----
From: delphi-l-owner@clexpert.cz [mailto:delphi-l-owner@clexpert.cz] On
Behalf Of Libor Junek, Medisoft International
Sent: Thursday, July 01, 2004 11:38 AM
To: delphi-l@clexpert.cz
Subject: Re: Case insensitive (FireBird)


1) Musis si to prevest na velka pismena pomoci UPPER()
2) SELECT NAZEV, COUNT(*) AS pocet FROM a ORDER BY nazev ASC GROUP BY
nazev; by melo fungovat. nemuzes pri GROUP zobrazovat jine fieldy nez
mas v GROUP protoze co ti ma ten server ukazat v tech ostatnich fieldech
kdyz data pro jeden nazev jsou ruzna.

Libor

----- Original Message -----
From: "Petr Kralik" <kralik@tebodin.cz>
Sent: Thursday, July 01, 2004 11:25 AM


> 1) Existuje nejaka funkce ekvivalentni k LIKE, ktera nerozlisuje velka

> a mala pismena?
>
> 2) Taky by me zajimalo jak docilim tohoto:
> SELECT *, COUNT(*) AS pocet FROM a ORDER BY nazev ASC GROUP BY nazev;



Odpovedá: Lebeda David

1. 7. 2004 13:59

> 1) Existuje nejaka funkce ekvivalentni k LIKE, ktera nerozlisuje
> velka a mala pismena?

Ahoj,

zalezi na tom, s cim provadis operaci LIKE. Jsou tri relativne podobne
veci: LIKE, STARTING WITH a CONTAINING a jedna z nich (tusim
starting with) je case insensitive. Pokud by to stacilo, je to asi lepsi nez
UPPER.

David Lebeda